/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gui;

import dao.DAO;
import dao.DAOCadastroUsuario;
import java.util.List;
import javax.swing.JDialog;
import javax.swing.JFrame;
import modelo.Lei;
import modelo.Usuario;
import negocio.Negocio;
import negocio.NegocioCadastroUsuario;

/**
 *
 * @author emersonmx
 */
public class ControladorCadastroUsuario implements Controlador {

  UI ui;
  Negocio negocio;
  DAO dao;

  public ControladorCadastroUsuario() {
    dao = new DAOCadastroUsuario();
    negocio = new NegocioCadastroUsuario();
    negocio.setDAO(dao);
  }

  @Override
  public UI getUI() {
    return ui;
  }

  @Override
  public void setUI(UI ui) {
    this.ui = ui;
  }

  @Override
  public void inserir(Object o) {
    negocio.inserir(o);
  }

  @Override
  public void alterar(Object o) {
    try {
      negocio.alterar(o);
      ui.exibirMensagem("A alteração no usuário foi realizada com sucesso.");

      // peguei meu titulo de POGuero devolta!! \o/
      JDialog d = ((JDialog) getUI());
      JFrame j = (JFrame) d.getParent();
      d.setVisible(false);
      j.setVisible(false);
      JanelaLogin janelaLogin = new JanelaLogin(j, true);
      ControladorCadastroUsuario ccu = new ControladorCadastroUsuario();
      ccu.setUI(janelaLogin);
      janelaLogin.setControlador(ccu);
      janelaLogin.setVisible(true);

      pesquisar();
    } catch (Exception e) {
      ui.exibirMensagemErro(e.getMessage());
    }
  }

  @Override
  public void excluir(Object o) {
    throw new UnsupportedOperationException("Not supported yet.");
  }

  @Override
  public void pesquisar() {
    List l = negocio.pesquisar();

    if (!l.isEmpty()) {
      UsuarioContainer uc = new UsuarioContainer();
      uc.setUsuario((Usuario) l.get(0));
      ui.mostrarObjeto(uc);
    }
  }

  @Override
  public void pesquisar(Object o) {
    if (!negocio.pesquisar(o).isEmpty()) {
      ((JanelaLogin) ui).mostrarPai();
      ((JanelaLogin) ui).setVisible(false);
    } else {
      ui.exibirMensagem("O usuário não existe, ou senha esta incorreta.");
    }
  }

  @Override
  public void setJanelaResultado(JanelaResultadoPesquisa janelaResultadoPesquisa) {
    throw new UnsupportedOperationException("Not supported yet.");
  }

  @Override
  public void setJanelaModificarLei(JanelaModificarLei janelaModificarLei) {
    throw new UnsupportedOperationException("Not supported yet.");
  }

  @Override
  public boolean numeroLeiUnica(String numeroLei) {
    throw new UnsupportedOperationException("Not supported yet.");
  }

    public boolean existObject(Lei lei) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
